The use of highly-capable mobile communication devices such as the iPhone®, the BlackBerry® and the Treo® is increasing rapidly. Such devices often transmit and receive large amounts of data such as video and audio clips, photographs and email attachments. Although contemporary mobile communication devices are capable of creating and utilizing these types of media content, they do not intelligently use the communication media available to them to optimize transmission and receipt of media files. Instead, mobile communication devices tend to immediately send or receive data, insensitive to the cost charged by operators, the type of service currently available or the remaining battery life. This can result not only in large bills for consumers, but also in the rapid loss of battery life, making the device useless until it is recharged. These problems are exacerbated by factors such as the proliferation of connectivity options, the wide variations in carrier data plans and treatments of device roaming, transient appearance and disappearance of short-range wireless connectivity and the need to balance user expectations and device capabilities.
Given the free or low-cost of 802.11 (WiFi) communication, it is advantageous to use this technology to transfer data items to and from mobile communication devices. However, the coverage area of a WiFi access point is quite small, and depending upon the user's location, WiFi access is often not available. Moreover, leaving the WiFi network interface card (NIC) on all the time wastes a lot of energy, and drains the battery. Therefore, it would be desirable for a mobile communication device to know just when to turn on the WiFI NIC and when to turn it off.
One option today is to leave the WiFi NIC on all the time, which causes the device to rapidly lose its stored battery charge. Another option is to ask the user of the device to manually turn the WiFi NIC on and off, which places a burden on the user. The WiFi NIC can also be turned off a short time after the last use, but this prevents the device from receiving incoming information when the user is not interacting with it, thus reducing the ability of the device to opportunistically communicate with the infrastructure. It would be desirable to address these shortcomings.